<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>CSS选择器</title>
  <style>
    /* 标签名选择器 */
    h4 {
      color: red;
    }
    div {
      width: 120px;
      height: 120px;
      background-color: cyan;
    }
    /* id选择器(<元素 id="id2">) */
    #d2 {
      color: red;
    }
    /* 类选择器(<元素 class="error">) */
    .error {
      background-color: red;
      color: white;
    }
    .success {
      background-color: green;
      color: white;
    }
    /* 伪类选择器 :hover选中元素的悬停状态*/
    /* 紧挨着写 #d2与:hover 是与的关系,只有同时满足才可以被选中 */
    #d2:hover {
      background-color: pink;
    }
    /*群组选择器 只要满足其中一个,就可以被选中*/
    #d2,h4,.error {
      text-decoration: underline;
    }
    /* 通配选择器 匹配所有元素*/
    * {
      font-style: italic;
    }
    a:link { /* 选中超链接未被访问过的状态 */
      color: gray;
    }
    a:visited { /* 选中超链接已经被访问过的状态 */
      color: green;
    }
    a:hover { /* 选中元素悬停时的状态(不是超链接独有的) */
      color: red;
    }
    a:active { /* 选中超链接激活时的状态 */
      color: orange;
    }
    /* 属性选择器 */
    input[type="text"] {
      background-color: yellow;
    }
    /* 后代选择器 选中包含在内的所有后代元素 子元素 孙元素...*/
    #d1 span {
      background-color: magenta;
    }
    /* 子代选择器 大于号,选中本元素的直接子元素 可以逐级向下写多层  */
    #d1>div>span {
      color: yellow;
    }
  </style>
</head>
<body>
<h4>我是标题</h4>
<p>我是段落</p>
<a href="#">我是超链接</a>
<h4>我是标题</h4>
<div>我是div1</div>
<div id="d2">我是div2</div>
<div>我是div3</div>
<hr>
<span class="error">用户名已被占用</span>
<span class="error">操作失败</span>
<br>
<span class="success">有效的手机号</span>
<span class="success">新增成功</span>
<hr>
<a href="https://www.baidu.com">百度首页</a>
<a href="abc">错误地址</a>
<hr>
<input type="text">
<input type="password">
<hr>
<div id="d1">
  <span>1</span>
  <div>
    <span>2</span>
    <b>测试</b>
  </div>
  <span>3</span>
</div>
</body>
</html>